﻿using System;
using System.IO;
using System.Reflection;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace main_fx
{
    public partial class Form_cad_peao : Form
    {
        public Form_cad_peao()
        {
            InitializeComponent();
        }

        DataTable table;

        int contagem = 0;

        int total;

        Bitmap img1, img2;

        
        string Arquivo;
        string fotoSalva;

        string[] temp = new string[50];
                    //É verificado se a paster existe, se não existir então será criada uma nova pasta
        string pastaDoExecutavel = Directory.GetCurrentDirectory();

        

        string SubPasta =  @"\fotos\";

        string semfoto = Directory.GetCurrentDirectory() + @"\fotos\_peao.png";
        //É verificado se a paster existe, se não existir então será criada uma nova pasta
        string final;


        private void pEAOBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {

        }

        private void Form_cad_peao_Load(object sender, EventArgs e)
        {
            // TODO: esta linha de código carrega dados na tabela 'rodeioDataSet.COMPETICAO'. Você pode movê-la ou removê-la conforme necessário.
            this.cOMPETICAOTableAdapter1.Fill(this.rodeioDataSet.COMPETICAO);
            // TODO: esta linha de código carrega dados na tabela 'rodeioDataSet.PEAO'. Você pode movê-la ou removê-la conforme necessário.
            this.pEAOTableAdapter1.Fill(this.rodeioDataSet.PEAO);
            // TODO: This line of code loads data into the 'dataSet1.RANKING' table. You can move, or remove it, as needed.
            this.rANKINGTableAdapter1.Fill(this.rodeioDataSet.RANKING);
            // TODO: This line of code loads data into the 'dataSet1.COMPETICAO' table. You can move, or remove it, as needed.
            botes(1);
            table = rodeioDataSet.PEAO;


            

            this.pEAOBindingSource.MoveLast();

            contagem = table.Rows.Count;
            // Use the NewRow method to create a DataRow with // the table's schema.

            contagemregistros();

        }

        private void Form_cad_peao_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                SelectNextControl(this.ActiveControl, !e.Shift, true, true, true);
            }
        }

        private void BT_SAIR_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void BT_NOVO_Click(object sender, EventArgs e)
        {
            

            botes(0);
            pEAOBindingSource.AddNew();

            
            
            
        }

        private void BT_SALVAR_Click(object sender, EventArgs e)
        {

            final = pastaDoExecutavel + SubPasta;



            try
            {

                Arquivo = openFileDialog1.FileName.ToString();





                string origem = iD_PEAOTextBox.Text + nOMETextBox.Text + ".jpg";
                string destino = string.Concat(final, System.IO.Path.GetFileName(origem));
                
                System.IO.File.Copy(Arquivo, destino, true);

                this.fOTOTextBox.Text = destino;
                this.Validate();
                this.pEAOBindingSource.EndEdit();

                aTIVOCheckBox.Enabled = false;
                
                this.tableAdapterManager1.UpdateAll(this.rodeioDataSet);

             
            

                MessageBox.Show("Peão Salvo com sucesso!");

                total = table.Rows.Count;
                contagem++;
                LContador.Text = total + " / " + total.ToString();

                botes(1);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Verifique a foto ou os dados");
                botes(0);
            }



        }


        private void bt_busca_foto_Click(object sender, EventArgs e)
        {


            openFileDialog1.Filter = "Foto JPG (*.jpg)|*.jpg";

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {

                string Arquivo = openFileDialog1.FileName.ToString();

                foto.Image = new Bitmap(Arquivo);

                
                try
                {
                    if (!System.IO.Directory.Exists(pastaDoExecutavel + SubPasta))
                    {
                        System.IO.Directory.CreateDirectory(pastaDoExecutavel + SubPasta);

                        
                    }

                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
               
            }


        private void carregafoto()
        {

            fotoSalva = fOTOTextBox.Text;
            
            if (fotoSalva == "")
            {
                fotoSalva = semfoto;
            }
            if (!(System.IO.File.Exists(fotoSalva)))
            {
                foto.Image = new Bitmap(semfoto);
            }

            else
            {
                img1 = new Bitmap(fotoSalva);

                img2 = new Bitmap(img1);

                img1.Dispose();

                foto.Image = img2;
            }
        }

        private void BT_APAGAR_Click(object sender, EventArgs e)
        {

            carregafoto();
                
            try
            {
                System.IO.FileInfo teste = new System.IO.FileInfo(fotoSalva);
                System.IO.File.Delete(teste.FullName);

                this.pEAOBindingSource.RemoveCurrent();

                this.Validate();
                this.pEAOBindingSource.EndEdit();
                this.tableAdapterManager1.UpdateAll(this.rodeioDataSet);
                MessageBox.Show("Peao removido");

                

                contagemregistros();
                
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro de remoção.\n" + ex.Message, "Erro de remoção", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            carregafoto();
        }

        private void botes(int x)
        {
            switch (x)
            {
                case 0:
                    panel1.Enabled = true;
                    BT_SALVAR.Enabled = true;
                    panel1.Enabled = true;
                    BT_NOVO.Enabled = false;
                    BT_APAGAR.Enabled = false;
                    BT_EDITAR.Enabled = false;
                    break;

                case 1:
                    panel1.Enabled = false;
                    BT_SALVAR.Enabled = false;
                    panel1.Enabled = false;
                    BT_NOVO.Enabled = true;
                    BT_APAGAR.Enabled = true;
                    BT_EDITAR.Enabled = true;

                    
                    break;

                case 2:
                    panel1.Enabled = true;
                    BT_SALVAR.Enabled = false;
                    
                    BT_NOVO.Enabled = false;
                    BT_APAGAR.Enabled = false;
                    BT_EDITAR.Enabled = true;
                    BT_salva_edit.Visible = true;
                    BT_salva_edit.Enabled = true;

                    
                    break;


            }
        }

        private void pEAOBindingNavigator_RefreshItems(object sender, EventArgs e)
        {

        }

        private void contagemregistros()
        {
            total = table.Rows.Count;

            LContador.Text = contagem + " / " + total.ToString();

            carregafoto();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            pEAOBindingSource.MoveLast();


            contagem = total;

            contagemregistros();

            
        }

        private void btproximo_Click(object sender, EventArgs e)
        {
            pEAOBindingSource.MoveNext();




           
            
            if (contagem > 0 && contagem < total)
            {
                contagem++;
                contagemregistros();
            }

            
        }

        private void btAnterior_Click(object sender, EventArgs e)
        {
            pEAOBindingSource.MovePrevious();

            if (contagem>1){
                contagem--;
                contagemregistros();
            }

            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            pEAOBindingSource.MoveFirst();

            contagem = 1;

            contagemregistros();
            // Use the NewRow method to create a DataRow with // the table's schema.

            
           
        }



        private void Form_cad_peao_FormClosed(object sender, FormClosedEventArgs e)
        {
        
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            botes(2);

            aTIVOCheckBox.Enabled = true;
            
        }

        private void BT_salva_edit_Click(object sender, EventArgs e)
        {

            try
            {
                
                this.Validate();
                this.pEAOBindingSource.EndEdit();
                this.tableAdapterManager1.UpdateAll(this.rodeioDataSet);
                MessageBox.Show("Peao alterado com sucesso!");

                BT_salva_edit.Visible = false;

                botes(1);
                contagemregistros();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro de remoção.\n" + ex.Message, "Erro de remoção", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            carregafoto();
        }

        private void pEAODataGridView_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            carregafoto();
        }
    }

    

}
